import {ADD_TODO_ITEM, CHANGE_INPUT_VALUE, DELETE_TODO_ITEM, INIT_LIST} from './actionType'
import axios from "axios";

export const getInputChangeAction = (value) => ({
    type: CHANGE_INPUT_VALUE,
    value
})
export const getAddTodoItemAction = () => ({
    type: ADD_TODO_ITEM
})
export const getDeleteTodoItemAction = (index) => ({
    type: DELETE_TODO_ITEM,
    index
})
export const getInitListAction = (list) => ({
    type: INIT_LIST,
    list
})
/**
 * 使用了redux-thunk之后，action可以是一个函数了，return出去的结果可以是一个函数了
 * 在这个函数里面，可以做异步的操作
 * action返回内容是函数的action的时候，这个函数能够接受到store的dispatch方法
 */
export const getTodoListAction = () => {
    return (dispatch) => {
        axios.get('/api/todolist')
            .then((res) => {
                const action = getInitListAction([...res.data.data]);
                dispatch(action)
            })
            .catch(() => {
                alert('error')
            })
    }
}